package cn.operation.base.mapper.custom;


import cn.operation.base.model.ScBaseArea;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by luobl on 2017-07-25.
 */
public interface ScBaseAreaCustomMapper {
    /**
     * 根据区域code查询区域信息
     *
     * @param code
     * @return
     */
    ScBaseArea selectByCode(@Param("code") String code);

    /**
     * @param @param  id
     * @param @param  getRidStatus 去除的状态
     * @param @return
     * @return ScBaseArea    返回类型
     * @throws
     * @Title: selectById
     * @Description: 根据id查询区域信息
     */
    ScBaseArea selectById(@Param("id") Integer id, @Param("getRidStatus") String getRidStatus);

    /**
     * @param @param  code
     * @param @param  getRidStatus 去除的状态
     * @param @return
     * @return Integer    返回类型
     * @throws
     * @Title: countByCode
     * @Description: 区域编码
     */
    Integer countByCode(@Param("code") String code, @Param("getRidStatus") String getRidStatus);

    /**
     * @param @param  ids
     * @param @param  status
     * @param @return
     * @return Integer    返回类型
     * @throws
     * @Title: deleteByIds
     * @Description: 根据ids删除区域信息
     */
    Integer deleteByIds(@Param("ids") List<String> ids, @Param("status") String status);

    /**
     * @param @param  id
     * @param @param  status 状态
     * @param @return
     * @return List<ScBaseArea>    返回类型
     * @throws
     * @Title: selectChildArea
     * @Description: 根据id获取下级区域
     */
    List<ScBaseArea> selectChildArea(@Param("id") Integer id, @Param("status") String status);

    /**
     * 根据parentId查询市级区域
     *
     * @param id
     * @return
     */
    List<ScBaseArea> selectByParentId(@Param("id") Integer id);

    /**
     * 根据parentId查询区级区域
     *
     * @param id
     * @return
     */
    List<ScBaseArea> selectCountryByParentId(@Param("id") Integer id);

    /**
     * 查询省级区域
     *
     * @param id
     * @return
     */
    List<ScBaseArea> selectAllProvince(@Param("id") Integer id);

    /**
     * 返回cityAndCounty
     *
     * @param id
     * @return
     */
    List<ScBaseArea> selectCityAndCounty(@Param("id") Integer id);

    List<ScBaseArea> selectAllAreaLevel();
}
